﻿using Enter.Admin.Enums;
using Enter.Admin.Utils;
using Newtonsoft.Json;
using System;

namespace Enter.Admin.Dtoes
{
    /// <summary>
    /// 案件台账总表
    /// </summary>
    public class CaseIndex2Model : CaseIndexBaseModel
    {
        /// <summary>
        /// 退案情况(退案情况)
        /// </summary>
        [Excel(HeaderName = "退案情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveOutCaseType))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveOutCaseType))]
        public int OutCaseType { get; set; }
        /// <summary>
        /// 退案情况(退案时间)
        /// </summary>
        [Excel(HeaderName = "退案时间", ColumnType = ExcelColumnType.台账表,Import = false, Editable = false)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime OutCaseTime2
        {
            get
            {
                return OutCaseTime;
            }
        }
        /// <summary>
        /// 退案情况(特殊案件备注)
        /// </summary>
        [Excel(HeaderName = "特殊案件备注", ColumnType = ExcelColumnType.台账表)]
        public string OutCaseNote { get; set; } = string.Empty;
        /// <summary>
        /// 笔数
        /// </summary>
        [Excel(HeaderName = "笔数", ColumnType = ExcelColumnType.台账表, Editable = false)]
        public override int No { get; set; }
        /// <summary>
        /// 批次
        /// </summary>
        [Excel(HeaderName = "批次", ColumnType = ExcelColumnType.台账表)]
        public string Batch { get; set; } = string.Empty;
        /// <summary>
        /// 批次序号
        /// </summary>
        [Excel(HeaderName = "批次序号", ColumnType = ExcelColumnType.台账表)]
        public string BatchNo { get; set; } = string.Empty;
        /// <summary>
        /// 借据编号
        /// </summary>
        [Excel(HeaderName = "借据编号", HeaderNames = new string[] { "借据号（自用）", "借据号", "借据编号" }, ColumnType = ExcelColumnType.台账表, Required = true)]
        public string BusinessNo { get; set; } = string.Empty;
        /// <summary>
        /// 合同编号
        /// </summary>
        [Excel(HeaderName = "合同号码", HeaderNames = new string[] { "合同编号", "合同号", "合同号码" }, ColumnType = ExcelColumnType.台账表, Required = true)]
        public override string ContractNo { get; set; } = string.Empty;
        /// <summary>
        /// 客户名称
        /// </summary>
        [Excel(HeaderName = "客户名称", ColumnType = ExcelColumnType.台账表)]
        public string CustomerOfName { get; set; } = string.Empty;
        /// <summary>
        /// 身份证号
        /// </summary>
        [Excel(HeaderName = "身份证号", HeaderNames = new string[] { "身份证号", "身份证号码" }, ColumnType = ExcelColumnType.台账表)]
        public string CustomerOfID { get; set; } = string.Empty;
        /// <summary>
        /// 身份证地址
        /// </summary>
        [Excel(HeaderName = "身份证地址", ColumnType = ExcelColumnType.台账表)]
        public string CustomerIDAddress { get; set; } = string.Empty;
        /// <summary>
        /// 业务名称
        /// </summary>
        [Excel(HeaderName = "业务名称", ColumnType = ExcelColumnType.台账表)]
        public string Business { get; set; } = string.Empty;
        /// <summary>
        /// 入账机构
        /// </summary>
        [Excel(HeaderName = "入账机构", ColumnType = ExcelColumnType.台账表)]
        public string EntryBank { get; set; } = string.Empty;
        /// <summary>
        /// 发放日期(放款日)
        /// </summary>
        [Excel(HeaderName = "发放日期", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime BusinessLoanTime { get; set; }
        /// <summary>
        /// 到期日
        /// </summary>
        [Excel(HeaderName = "到期日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime BusinessExpireTime { get; set; }
        /// <summary>
        /// 合同金额
        /// </summary>
        [Excel(HeaderName = "合同金额", ColumnType = ExcelColumnType.台账表)]
        public decimal ContractAmount { get; set; }
        /// <summary>
        /// 余额
        /// </summary>
        [Excel(HeaderName = "余额", ColumnType = ExcelColumnType.台账表)]
        public decimal BalanceAmount { get; set; }
        /// <summary>
        /// 特管经理/管户人
        /// </summary>
        [Excel(HeaderName = "管户人", ColumnType = ExcelColumnType.台账表)]
        public string SpecialManager { get; set; } = string.Empty;
        /// <summary>
        /// 委托律所
        /// </summary>
        [Excel(HeaderName = "委托律所", ColumnType = ExcelColumnType.台账表)]
        public string TrustLawfirm { get; set; } = string.Empty;        
        /// <summary>
        /// 委托状态
        /// </summary>
        [Excel(HeaderName = "委托状态", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveTrustState))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveTrustState))]
        public int TrustState { get; set; }
        /// <summary>
        /// 接收日
        /// </summary>
        [Excel(HeaderName = "接收日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime TrustTime { get; set; }
        /// <summary>
        /// 1月案件进展
        /// </summary>
        [Excel(HeaderName = "1月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalJan1 { get; set; }
        /// <summary>
        /// 2月案件进展
        /// </summary>
        [Excel(HeaderName = "2月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalFeb1 { get; set; }
        /// <summary>
        /// 3月案件进展
        /// </summary>
        [Excel(HeaderName = "3月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalMar1 { get; set; }
        /// <summary>
        /// 4月案件进展
        /// </summary>
        [Excel(HeaderName = "4月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalApr1 { get; set; }
        /// <summary>
        /// 5月案件进展
        /// </summary>
        [Excel(HeaderName = "5月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalMay1 { get; set; }
        /// <summary>
        /// 6月案件进展
        /// </summary>
        [Excel(HeaderName = "6月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalJun1 { get; set; }
        /// <summary>
        /// 7月案件进展
        /// </summary>
        [Excel(HeaderName = "7月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalJul1 { get; set; }
        /// <summary>
        /// 8月案件进展
        /// </summary>
        [Excel(HeaderName = "8月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalAug1 { get; set; }
        /// <summary>
        /// 9月案件进展
        /// </summary>
        [Excel(HeaderName = "9月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalSep1 { get; set; }
        /// <summary>
        /// 10月案件进展
        /// </summary>
        [Excel(HeaderName = "10月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalOct1 { get; set; }
        /// <summary>
        /// 11月案件进展
        /// </summary>
        [Excel(HeaderName = "11月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalNov1 { get; set; }
        /// <summary>
        /// 12月案件进展
        /// </summary>
        [Excel(HeaderName = "12月-案件进展跟踪情况", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveNatural1))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveNatural1))]
        public int NaturalDec1 { get; set; }
        /// <summary>
        /// 案件情况说明
        /// </summary>
        [Excel(HeaderName = "案件情况说明", ColumnType = ExcelColumnType.台账表)]
        public string CaseInfo { get; set; } = string.Empty;
        /// <summary>
        /// 需撤诉案件撤诉手续是否已办理
        /// </summary>
        [Excel(HeaderName = "需撤诉案件撤诉手续是否已办理", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo IsDropCase { get; set; }
        /// <summary>
        /// 已结案的案件手续是否已办理
        /// </summary>
        [Excel(HeaderName = "已结案的案件手续是否已办理", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo IsFinishCase { get; set; }        
        /// <summary>
        /// 实际委托催收开始时间
        /// </summary>
        [Excel(HeaderName = "实际委托催收开始时间", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime WantStartTime { get; set; }
        /// <summary>
        /// 1月案件记载
        /// </summary>
        [Excel(HeaderName = "1月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalJan2 { get; set; } = string.Empty;
        /// <summary>
        /// 2月案件记载
        /// </summary>
        [Excel(HeaderName = "2月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalFeb2 { get; set; } = string.Empty;
        /// <summary>
        /// 3月案件记载
        /// </summary>
        [Excel(HeaderName = "3月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalMar2 { get; set; } = string.Empty;
        /// <summary>
        /// 4月案件记载
        /// </summary>
        [Excel(HeaderName = "4月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalApr2 { get; set; } = string.Empty;
        /// <summary>
        /// 5月案件记载
        /// </summary>
        [Excel(HeaderName = "5月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalMay2 { get; set; } = string.Empty;
        /// <summary>
        /// 6月案件记载
        /// </summary>
        [Excel(HeaderName = "6月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalJun2 { get; set; } = string.Empty;
        /// <summary>
        /// 7月案件记载
        /// </summary>
        [Excel(HeaderName = "7月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalJul2 { get; set; } = string.Empty;
        /// <summary>
        /// 8月案件记载
        /// </summary>
        [Excel(HeaderName = "8月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalAug2 { get; set; } = string.Empty;
        /// <summary>
        /// 9月案件记载
        /// </summary>
        [Excel(HeaderName = "9月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalSep2 { get; set; } = string.Empty;
        /// <summary>
        /// 10月案件记载
        /// </summary>
        [Excel(HeaderName = "10月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalOct2 { get; set; } = string.Empty;
        /// <summary>
        /// 11月案件记载
        /// </summary>
        [Excel(HeaderName = "11月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalNov2 { get; set; } = string.Empty;
        /// <summary>
        /// 12月案件记载
        /// </summary>
        [Excel(HeaderName = "12月案件记载", ColumnType = ExcelColumnType.台账表)]
        public string NaturalDec2 { get; set; } = string.Empty;
        /// <summary>
        /// 立案联调日
        /// </summary>
        [Excel(HeaderName = "立案联调日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime JointTime { get; set; }
        /// <summary>
        /// 立案联调案号
        /// </summary>
        [Excel(HeaderName = "立案联调案号", ColumnType = ExcelColumnType.台账表)]
        public string JointNo { get; set; } = string.Empty;
        /// <summary>
        /// 起诉立案日
        /// </summary>
        [Excel(HeaderName = "起诉立案日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime FilingTime { get; set; }
        /// <summary>
        /// 审判案号
        /// </summary>
        [Excel(HeaderName = "审判案号", ColumnType = ExcelColumnType.台账表)]
        public string TrialNo { get; set; } = string.Empty;
        /// <summary>
        /// 案件受理费
        /// </summary>
        [Excel(HeaderName = "案件受理费", ColumnType = ExcelColumnType.台账表)]
        public decimal CaseFee { get; set; }
        /// <summary>
        /// 保全案号
        /// </summary>
        [Excel(HeaderName = "保全案号", ColumnType = ExcelColumnType.台账表)]
        public string PreserveNo { get; set; } = string.Empty;
        /// <summary>
        /// 保全费
        /// </summary>
        [Excel(HeaderName = "保全费", ColumnType = ExcelColumnType.台账表)]
        public decimal PreserveFee { get; set; }
        /// <summary>
        /// 公告费
        /// </summary>
        [Excel(HeaderName = "公告费", ColumnType = ExcelColumnType.台账表)]
        public decimal AnnouncementFee { get; set; }        
        /// <summary>
        /// 保全财产明细
        /// </summary>
        [Excel(HeaderName = "保全财产明细", ColumnType = ExcelColumnType.台账表)]
        public string PreserveDetail { get; set; } = string.Empty;
        /// <summary>
        /// 保全备注：（房产/车辆/股权/其他）
        /// </summary>
        [Excel(HeaderName = "保全备注：（房产/车辆/股权/其他）", ColumnType = ExcelColumnType.台账表)]
        public string PreserveNote { get; set; } = string.Empty;
        /// <summary>
        /// 备注（保全进度：待保全/已保全未出查冻扣通知书/已保全已查封）
        /// </summary>
        [Excel(HeaderName = "保全进度：（待保全/已保全未出查冻扣通知书/已保全已查封）", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchivePreserveProgress))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchivePreserveProgress))]
        public int PreserveProgress { get; set; }
        /// <summary>
        /// 保全到期日/查封、冻结到期日
        /// </summary>
        [Excel(HeaderName = "查封、冻结到期日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime SealOutTime { get; set; }
        /// <summary>
        /// 主审法官
        /// </summary>
        [Excel(HeaderName = "主审法官", ColumnType = ExcelColumnType.台账表)]
        public string JudgeMaster { get; set; } = string.Empty;
        /// <summary>
        /// 开庭日
        /// </summary>
        [Excel(HeaderName = "开庭日", ColumnType = ExcelColumnType.台账表, Format = DateFormatConverter.Format_yyyyMMddHHmmss)]
        [JsonConverter(typeof(DateFormatConverter), DateFormatConverter.Format_yyyyMMddHHmmss)]
        public DateTime CourtTime { get; set; }
        /// <summary>
        /// 被告情况(到庭情况,枚举) 
        /// </summary>
        [Excel(HeaderName = "被告情况(到庭情况)", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveDefendantComeState))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveDefendantComeState))]
        public int DefendantComeState { get; set; }
        /// <summary>
        /// 被告情况(联系方式)
        /// </summary>
        [Excel(HeaderName = "被告情况(联系方式)", ColumnType = ExcelColumnType.台账表)]
        public string DefendantPhone { get; set; } = string.Empty;       
        /// <summary>
        /// 被告情况(还款意愿)
        /// </summary>
        [Excel(HeaderName = "被告情况(还款意愿)", ColumnType = ExcelColumnType.台账表)]
        public string DefendantRepay { get; set; } = string.Empty;
        /// <summary>
        /// 被告情况(处理方式)
        /// </summary>
        [Excel(HeaderName = "被告情况(处理方式)", ColumnType = ExcelColumnType.台账表)]
        public string DefendantHandle { get; set; } = string.Empty;
        /// <summary>
        /// 判决日
        /// </summary>
        [Excel(HeaderName = "判决日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime VerdictTime { get; set; }
        /// <summary>
        /// 判决公告日
        /// </summary>
        [Excel(HeaderName = "判决公告日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime VerdictPublicTime { get; set; }
        /// <summary>
        /// 判决生效日
        /// </summary>
        [Excel(HeaderName = "判决生效日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime VerdictValidTime { get; set; }
        /// <summary>
        /// 案件受理退费情况(有无退费)
        /// </summary>
        [Excel(HeaderName = "案件受理退费情况(有无退费)", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumHaveNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumHaveNo))]
        public EnumHaveNo CaseRefunded { get; set; }
        /// <summary>
        /// 案件受理退费情况(金额)
        /// </summary>
        [Excel(HeaderName = "案件受理退费情况(金额)", ColumnType = ExcelColumnType.台账表)]
        public decimal CaseRefundFee { get; set; }
        /// <summary>
        /// 案件受理退费情况(是否办结)
        /// </summary>
        [Excel(HeaderName = "案件受理退费情况(是否办结)", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo CaseRefundFinshed { get; set; }
        /// <summary>
        /// 案件受理退费情况(申请退费日期)
        /// </summary>
        [Excel(HeaderName = "案件受理退费情况(申请退费日期)", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime CaseRefundTime { get; set; }
        /// <summary>
        /// 申请执行日
        /// </summary>
        [Excel(HeaderName = "申请执行日", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime ApplyExecutionTime { get; set; }
        /// <summary>
        /// 执行案号
        /// </summary>
        [Excel(HeaderName = "执行案号", ColumnType = ExcelColumnType.台账表)]
        public string ExecutionNo { get; set; } = string.Empty;
        /// <summary>
        /// 执行法官
        /// </summary>
        [Excel(HeaderName = "执行法官", ColumnType = ExcelColumnType.台账表)]
        public string ExecutionJudge { get; set; } = string.Empty;
        /// <summary>
        /// 是否申请纳入失信被执行人名单
        /// </summary>
        [Excel(HeaderName = "是否申请纳入失信被执行人名单", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo IsBlacklist { get; set; }
        /// <summary>
        /// 申请纳入失信被执行人名单时间
        /// </summary>
        [Excel(HeaderName = "申请纳入失信被执行人名单时间", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime BlackInTime { get; set; }
        /// <summary>
        /// 执行中查封、冻结财产明细(房产)
        /// </summary>
        [Excel(HeaderName = "执行中查封、冻结财产明细(房产)", ColumnType = ExcelColumnType.台账表)]
        public string ExecutingBuilding { get; set; } = string.Empty;
        /// <summary>
        /// 执行中查封、冻结财产明细(车辆)
        /// </summary>
        [Excel(HeaderName = "执行中查封、冻结财产明细(车辆)", ColumnType = ExcelColumnType.台账表)]
        public string ExecutingCaring { get; set; } = string.Empty;
        /// <summary>
        /// 执行中查封、冻结财产明细(股权)
        /// </summary>
        [Excel(HeaderName = "执行中查封、冻结财产明细(股权)", ColumnType = ExcelColumnType.台账表)]
        public string ExecutingStock { get; set; } = string.Empty;
        /// <summary>
        /// 执行中查封、冻结财产明细(其他)
        /// </summary>
        [Excel(HeaderName = "执行中查封、冻结财产明细(其他)", ColumnType = ExcelColumnType.台账表)]
        public string ExecutingOther { get; set; } = string.Empty;
        /// <summary>
        /// 执行查封财产情况：（房产/车辆/股权/其他）
        /// </summary>
        [Excel(HeaderName = "执行查封财产情况：（房产/车辆/股权/其他）", ColumnType = ExcelColumnType.台账表)]
        public string ExecutionNote { get; set; } = string.Empty;
        /// <summary>
        /// 执行查封、冻结财产到期日
        /// </summary>
        [Excel(HeaderName = "执行查封、冻结财产到期日", ColumnType = ExcelColumnType.台账表)]
        public string ExecutionOutTime { get; set; } = string.Empty;
        /// <summary>
        /// 执行回款金额
        /// </summary>
        [Excel(HeaderName = "执行回款金额", ColumnType = ExcelColumnType.台账表)]
        public decimal ExecutionBackPrice { get; set; }
        /// <summary>
        /// 申请扣划执行款时间
        /// </summary>
        [Excel(HeaderName = "申请扣划执行款时间", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime ExecutionBackTime { get; set; }
        /// <summary>
        /// 结案情况
        /// </summary>
        [Excel(HeaderName = "结案情况", ColumnType = ExcelColumnType.台账表)]
        public string ClosingNote { get; set; } = string.Empty;        
        /// <summary>
        /// 终本裁定是否有财产-执行款除外（是/否）
        /// </summary>
        [Excel(HeaderName = "终本裁定是否有财产-执行款除外（是/否）", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo ClosingHasPro { get; set; }
        /// <summary>
        /// 终本时间
        /// </summary>
        [Excel(HeaderName = "终本时间", ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime ClosingTime { get; set; }
        /// <summary>
        /// 是否退案（如是，请填已退案或已退案-移交特管）
        /// </summary>
        [Excel(HeaderName = "是否退案/留案（退案填写：已退案-分行或已退案-移交特管（退案情况填写先发生的）", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumArchiveIsOutCase))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveIsOutCase))]
        public int IsOutCase { get; set; }
        /// <summary>
        /// 退案具体日期
        /// </summary>
        [Excel(HeaderName = "退案具体日期", HeaderNames = new string[] { "退案具体日期", "退案时间" }, ColumnType = ExcelColumnType.台账表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime OutCaseTime { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [Excel(HeaderName = "备注", ColumnType = ExcelColumnType.台账表)]
        public string Note { get; set; } = string.Empty;
        /// <summary>
        /// 诉讼档案交接情况
        /// </summary>
        [Excel(HeaderName = "诉讼档案交接情况（具体时间已交接/整理中待交接）", ColumnType = ExcelColumnType.台账表)]
        public string HandoverNote2 { get; set; } = string.Empty;
        /// <summary>
        /// 诉讼档案是否扫描
        /// </summary>
        [Excel(HeaderName = "诉讼档案是否扫描", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo HandoverIsScan { get; set; }
        /// <summary>
        /// 退案进展（自用）已退案/未退案/可退案
        /// </summary>
        [Excel(HeaderName = "退案进展（自用）", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchiveProgressOfOutCase))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchiveProgressOfOutCase))]
        public EnumArchiveProgressOfOutCase ProgressOfOutCase { get; set; }
        /// <summary>
        /// 案件负责人（自用）
        /// </summary>
        [Excel(HeaderName = "案件负责人（自用）", ColumnType = ExcelColumnType.台账表, Drop = nameof(EnumArchive.EnumEmploy))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumEmploy))]
        public long ChargeUserId2 { get; set; }
        /*---------------------诉讼信息表---------------------------*/
        /// <summary>
        /// 借款人
        /// </summary>
        [Excel(HeaderName = "借款人", ColumnType = ExcelColumnType.诉讼信息表)]
        public string CustomerName { get; set; } = string.Empty;
        /// <summary>
        /// 性别(男/女/未知)
        /// </summary>
        [Excel(HeaderName = "性别", ColumnType = ExcelColumnType.诉讼信息表, Drop = nameof(EnumArchive.EnumArchiveCustomerSexy))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveCustomerSexy))]
        public int CustomerSexy { get; set; }
        /// <summary>
        /// 民族
        /// </summary>
        [Excel(HeaderName = "民族", ColumnType = ExcelColumnType.诉讼信息表)]
        public string CustomerEthnic { get; set; } = string.Empty;
        /// <summary>
        /// 出生年月日
        /// </summary>
        [Excel(HeaderName = "出生年月日", ColumnType = ExcelColumnType.诉讼信息表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime CustomerBirthday { get; set; }
        /// <summary>
        /// 身份证号码
        /// </summary>
        [Excel(HeaderName = "身份证号码", ColumnType = ExcelColumnType.诉讼信息表, Import = false, Editable = false)]
        public string CustomerID
        {
            get
            {
                return CustomerOfID;
            }
        }
        ///// <summary>
        ///// 身份证地址
        ///// </summary>
        //[Excel(HeaderName = "身份证地址", Import = false)]
        //public string CustomerOfIDAddress
        //{
        //    get
        //    {
        //        return CustomerIDAddress;
        //    }
        //}
        /// <summary>
        /// 房产信息（复印回来材料提取）
        /// </summary>
        [Excel(HeaderName = "房产信息（复印回来材料提取）", ColumnType = ExcelColumnType.诉讼信息表)]
        public string Building { get; set; } = string.Empty;
        /// <summary>
        /// 房产证号
        /// </summary>
        [Excel(HeaderName = "房产证号", ColumnType = ExcelColumnType.诉讼信息表)]
        public string BuildingNo { get; set; } = string.Empty;
        /// <summary>
        /// 有效送达地址
        /// </summary>
        [Excel(HeaderName = "有效送达地址", ColumnType = ExcelColumnType.诉讼信息表)]
        public string CustomerValidAddress { get; set; } = string.Empty;
        /// <summary>
        /// 合同号/合同编号
        /// </summary>
        [Excel(HeaderName = "合同编号", ColumnType = ExcelColumnType.诉讼信息表, Import = false, Editable = false)]
        public string ContractNo2
        {
            get
            {
                return ContractNo;
            }
        }
        ///// <summary>
        ///// 借据号（自用）/借据编号
        ///// </summary>
        //[Excel(HeaderName = "借据编号", ColumnType = ExcelColumnType.诉讼信息表, Import = false, Editable = false)]
        //public string BusinessNo2
        //{
        //    get
        //    {
        //        return BusinessNo;
        //    }
        //}

        /// <summary>
        /// 合同地址
        /// </summary>
        [Excel(HeaderName = "合同地址", ColumnType = ExcelColumnType.诉讼信息表)]
        public string ContractAddress { get; set; } = string.Empty;
        /// <summary>
        /// 联系电话
        /// </summary>
        [Excel(HeaderName = "联系电话", ColumnType = ExcelColumnType.诉讼信息表)]
        public string CustomerPhone { get; set; } = string.Empty;
        /// <summary>
        /// 合同签订时间
        /// </summary>
        [Excel(HeaderName = "合同签订时间", ColumnType = ExcelColumnType.诉讼信息表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime ContractTime { get; set; }
        /// <summary>
        /// 是否额度合同
        /// </summary>
        [Excel(HeaderName = "是否额度合同", ColumnType = ExcelColumnType.诉讼信息表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo IsLimitContract { get; set; }
        /// <summary>
        /// 是否电子签
        /// </summary>
        [Excel(HeaderName = "是否电子签", ColumnType = ExcelColumnType.诉讼信息表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo IsElectContract { get; set; }
        /// <summary>
        /// 入账机构/管户机构
        /// </summary>
        [Excel(HeaderName = "管户机构", ColumnType = ExcelColumnType.诉讼信息表)]
        public string BusinessBank { get; set; } = string.Empty;
        /// <summary>
        /// 支付方式(自主支付/受托支付)
        /// </summary>
        [Excel(HeaderName = "支付方式", ColumnType = ExcelColumnType.诉讼信息表, Drop = nameof(EnumArchive.EnumArchivePayType))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchivePayType))]
        public int PayType { get; set; }
        /// <summary>
        /// 本人有无付款授权书(有/无)
        /// </summary>
        [Excel(HeaderName = "是否有付款授权书", ColumnType = ExcelColumnType.诉讼信息表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo IsPayAuthed { get; set; }
        /// <summary>
        /// 本人无有特种转账借方传票(有/无)
        /// </summary>
        [Excel(HeaderName = "是否有特种转账借方传票", ColumnType = ExcelColumnType.诉讼信息表, Drop = nameof(EnumYesNo))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumYesNo))]
        public EnumYesNo IsSpecialSummons { get; set; }
        /// <summary>
        /// 传票收款账户是否为是(受托人/本人)
        /// </summary>
        [Excel(HeaderName = "传票收款账户是否为受托人", ColumnType = ExcelColumnType.诉讼信息表, Drop = nameof(EnumArchive.EnumArchiveSelfType))]
        [JsonConverter(typeof(EnumConverter), nameof(EnumArchive.EnumArchiveSelfType))]
        public int IsSelfSpecialSummons { get; set; }
        /// <summary>
        /// 借款本金
        /// </summary>
        [Excel(HeaderName = "借款本金", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal BorrowAmount { get; set; }
        /// <summary>
        /// 年利率(%)
        /// </summary>
        [Excel(HeaderName = "年利率（%）", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal YearOfRate { get; set; }
        /// <summary>
        /// 月利率(%)
        /// </summary>
        [Excel(HeaderName = "月利率（%）", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal MonthOfRate { get; set; }
        /// <summary>
        /// 贷款期数
        /// </summary>        
        [Excel(HeaderName = "贷款期数", ColumnType = ExcelColumnType.诉讼信息表)]
        public int LoanMonthly { get; set; }
        /// <summary>
        /// 已还期数
        /// </summary>
        [Excel(HeaderName = "已还期数", ColumnType = ExcelColumnType.诉讼信息表)]
        public int AlreadyMonthly { get; set; }
        /// <summary>
        /// 拖欠期数
        /// </summary>
        [Excel(HeaderName = "拖欠期数", ColumnType = ExcelColumnType.诉讼信息表)]
        public int ArrearMonthly { get; set; }
        /// <summary>
        /// 还款中断日
        /// </summary>
        [Excel(HeaderName = "还款中断日", ColumnType = ExcelColumnType.诉讼信息表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime BreakTime { get; set; }
        /// <summary>
        /// 放款日
        /// </summary>
        [Excel(HeaderName = "放款日", ColumnType = ExcelColumnType.诉讼信息表, Import = false, Editable = false)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime BusinessLoanTime2
        {
            get
            {
                return BusinessLoanTime;
            }
        }
        ///// <summary>
        ///// 到期日
        ///// </summary>
        //[Excel(HeaderName = "到期日")]
        //[JsonConverter(typeof(DateFormatConverter))]
        //public DateTime BusinessExpireTime { get; set; }
        /// <summary>
        /// 拖欠本金
        /// </summary>
        [Excel(HeaderName = "拖欠本金", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal ArrearAmount { get; set; }
        /// <summary>
        /// 剩余本金
        /// </summary>
        [Excel(HeaderName = "剩余本金", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal SurplusAmount { get; set; }
        /// <summary>
        /// 总本金(拖欠本金+剩余本金)
        /// </summary>
        [Excel(HeaderName = "总本金", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal TotalAmount { get; set; }
        /// <summary>
        /// 拖欠正常本金利息
        /// </summary>
        [Excel(HeaderName = "拖欠正常本金利息", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal ArrearInterest1 { get; set; }
        /// <summary>
        /// 拖欠逾期本金罚息
        /// </summary>
        [Excel(HeaderName = "拖欠逾期本金罚息", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal ArrearInterest2 { get; set; }
        /// <summary>
        /// 拖欠复利
        /// </summary>
        [Excel(HeaderName = "拖欠复利", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal ArrearInterest3 { get; set; }
        /// <summary>
        /// 合计(总本金+拖欠正常本金利息+拖欠逾期本金罚息+拖欠复利)
        /// </summary>
        [Excel(HeaderName = "合计", ColumnType = ExcelColumnType.诉讼信息表)]
        public decimal TotalAll { get; set; }
        /// <summary>
        /// 清单生成日
        /// </summary>
        [Excel(HeaderName = "清单生成日", ColumnType = ExcelColumnType.诉讼信息表)]
        [JsonConverter(typeof(DateFormatConverter))]
        public DateTime ListTime { get; set; }
        /// <summary>
        /// 诉讼档案交接情况
        /// </summary>
        [Excel(HeaderName = "诉讼备注", ColumnType = ExcelColumnType.诉讼信息表)]
        public string HandoverNote { get; set; } = string.Empty;
    }
}
